1. Field of the Invention
The present invention relates in general to software re-engineering, and more particularly to identifying an interface of an application program.
2. Description of the Related Art
With the advent of the World Wide Web (Web), many enterprises prefer to leverage existing mainframe application programs by connecting a Web front-end to those existing mainframe application programs. These mainframe application programs may include transaction systems such as the IBM® Customer Information Control System (CICS®), the IBM® Information Management System (IMS), or the IBM® DB2® relational database system. (IBM®, CICS®, and DB2® are registered trademarks of International Business Machines Corporation in the United States, other countries, or both.) To bridge between the Web front-end and the existing mainframe application program, a block of code, commonly known as a connector, is generated. Tools that generate a connector are available from various manufacturers, such as the IBM® Enterprise Access Builder, IBM® WebSphere Application Development Studio, IBM® VisualAge® Interspace, IBM® VisualAge® for Java®, or Microsoft® COM Transaction Integrator (COMTI). (VisualAge® is a registered trademark of International Business Machines Corporation in the United States, other countries, or both. WebSphere is a trademark of International Business Machines Corporation in the United States, other countries, or both. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft is a trademark of Microsoft Corporation in the United States, other countries, or both.) To generate a connector from a specified source code file comprising a mainframe application program, a connector tool parses the source code contained in a specified source code file to obtain the information necessary to generate the connector. This conventional approach may generate the appropriate connector if the specified source code file contains the complete information necessary to generate the connector. However, the specified source code file may not contain any of the necessary information or may only contain a portion of the necessary information. For example, it may be a COBOL source code file containing a COPY statement which points to another source code file, a COBOL COPYBOOK, which actually contains the necessary information. Typically, this complete information is contained in and dispersed among multiple source code files. Thus, there is a need for a connector tool which can generate a connector based upon information dispersed among multiple source code files.
Conventional connector generators are also language dependent, such as a Java-to-COBOL connector generator, a Java-to-CICS connector generator, or a C++-to-COBOL connector generator. The Java-to-COBOL connector generator cannot be used to generate a C++-to-COBOL connector, and the C++-to-COBOL connector generator cannot be used to generate a Java-to-COBOL connector. Thus, generating a second connector for a second language involves a repetition of the identification, parsing, selection, and editing steps which were performed for the generation of the first connector. Even if the same connector is being re-generated, i.e., the second connector is the same language as the first connector, the steps are repeated. The reuse of prior parsing, identification, and editing is difficult as conventional systems fail to store this information in a form which is consummable by a connector building tool. Thus, there is a need for a connector tool which supports multiple target languages, and which reuses information and analysis from one generation to the next or from one language to another language.
Conventional methods have failed to provide solutions to these problems. Thus, there is a clearly felt need for a method, system, article of manufacture, and computer program product for providing improved identification of an interface of an application program dispersed among multiple files for consumption by a connector building tool.